Steem SSE 3.5.3
-----------------


Steem Engine, by Anthony & Russell Hayward
--------------------------------------------

Steem is a well known Atari ST emulator. It used to be the best ST emulator.
Its development was stopped in 2004, at v3.2. The Steem authors probably got
sick of all the lamers.
Since then, it has remained the best ST emulator with respects to "gameplay",
but other ST emulators like Hatari and SainT are trying to usurp Steem's 
throne.
In 2011 the Steem authors (Hayward bros) released the source code for further
development.


SSE
-----

Steem SSE is a new version of Steem based on this release. It incorporates
new features and emulation improvements, some of them based on the Hatari 
emulator, some on various internet discussions and documentation.

Steem SSE aims to become the #1 STF/STE emulator. There's no limitation in
the original Steem structure that would make that goal unreachable.

'SSE' stands for 'Steven Seagal Edition'. Steven Seagal is a well known 
Aikido grandmaster, action movie star, musician and playboy.
This is also my silly handle at http://www.atari-forum.com. 


Available builds
------------------

Both the regular ("user") and the Boiler ("debug") builds are available.
The main build is 'Steem SSE 3.5.2'.
A Linux build (XSteem) is available too. It contains fewer features, and may
lag behind the main version.
All basic emulation improvements (CPU, FDC, etc.) work as well in Linux, 
however.


Steem SSE Features
--------------------

- F12 starts/stop emulation, like in most other emulators (in general, not just
  ST). The odd Steem key combination was confusing, and dangerous! 
  Imagine your boss barging in and you don't know how to stop your virtual ST!
  Your own F12 shortcut (for previous versions of Steem) will not operate.
  This is not optional, I want nobody fired because of Steem.
  The old combination still works too.

- Drive led: green for reading, red for writing, yellow for hard disk. 

- Steem won't run at once anymore when going fullscreen, it will wait for your
  orders. (v3.4)
  It's because it would always stutter anyway, at least on all computers I've
  tried. Way to lose a life.

- Record to AVI (v3.5)
  To use this feature, you need to assign a shortcut key combination (eg right
  control + V), then use this shortcut to start & stop recording (toggle). 
  The video will be saved in Steem's directory as 'SteemVideo.avi', erasing the
  previous file if necessary.
  If the MPG4 codec is in your system, it will be used, if not the MSVC codec
  will be used. 
  Neither video nor sound, nor sync are great. Sound isn't compressed.
  Apparently some computers record the full screen! No idea why.
  Certainly there's room for improvement. We don't use DirectShow yet.
  Windows-only.

- RAR archive support (v3.5)
  Using the free Unrar.dll plugin by RAR labs. You need to have this DLL in
  Steem folder or in any system path, just like unzipd32.dll.
  Windows-only.

- Save screenshot as NEO (v3.5)
  Hopefully with the correct palette. Some programs change it all the time, so
  it's better to take the screenshots while the emulation is running, or you 
  could a black screenshot. Even so, the risk exists.
  I made this for the demo included with Steem SSE 3.5.
  Note that Steem can also use 'FreeImage' library for various formats 
  (PNG etc). Not my doing, was in v3.2.

- Indicate Pasti is in charge on disk manager (v3.5)

- Nuked WinSTon import, it's outdated (v3.5)
  This saves 16KB on the executable.

- Nuked update process (saves 4KB) (v3.5)

- Match TOS with ST type: refresh in TOS list (only TOS1.02 and 1.06)

- Infobox will display SSE readme and FAQ; new font and size (3.5.2)

- More screenshots (100,000 instead of 1,000) (3.5.2)


New options
-------------

Some new options are available, most of them regrouped in a new 'SSE' tab 
(I hope everybody will recognise the icon, I made it myself!).

- Option 'Display Size'
  'Original' is what you had in Steem 3.2, and is fine for most programs. 
  It's also close to what a real Atari SC1224 monitor showed.
  'Large' adds some pixels and is the max for fullscreen in straight
  blit mode (800 pixels width), a pleasant experience if you have the right
  monitor. This mode uses a trick in DirectX, so display when emulation is not 
  running could be wrong, and flip mode won't work in fullscreen (don't worry,
  Steem will switch for you).
  There are two settings with a small difference in the number of scanlines. 
  Generally, 275 is the best, I think (but I'm not sure) that it's the max 
  number of lines that could be fetched from the ST video RAM.
  'Very Large' (412x285) displays all the ST could possibly display, but most
  users didn't see it all due to the monitor. 
  The width was reputed to be 416 pixels but the overscan technique caused the 
  loss of the first 4 pixels.
  This mode could reveal some trash in programs as coders didn't see all 
  either. Note that part of the trash may be emulation issue (D4/Nightmare).
  You can even change those options while the emulation is running.

- Option 'Interpolated scanlines'  (v3.5.1)
  Mixing 'stretch' mode with 'scanline'. 
  That way the picture resembles more the display of a not so sharp colour
  monitor on a real ST (Goldstar: interpolated vs JVC: scanlines). 
  The option is available in both low and medium resolutions (not high).
  It works (or should) for both windowed and full screen modes.
  Like some other SSE features, it's more a hack than anything.
  Windows-only. 

- Option 'Capture mouse'

- Option 'Hacks'
  This option covers two kinds of things:
  - Convenience hacks, like for TOS1.06 medium resolution fix, or fitting the
    window size in Best Part of the Creation
  - Emulation hacks, when emulation of some feature isn't perfect yet we want
    the programs to run. Since we don't understand everything in the feature,
    those hacks could break something, hence the option.
    In the current version (3.5.2), it covers some "shifts" when the program 
    writes in the video counter registers (STE mode), some MFP improvements
    implemented in a dubious way, and some other various hacks (FDC, IKBD...)
  It is recommended to disable 'Hacks' only if you meet problems (please
  report).

- Option 'Emu detect'
  v3.4
  When you disable this option, Steem won't cooperate with programs trying
  to assert if they run on an emulator. It may be useful if there are still
  incurable hardware fanboys around producing worthwhile code that refuses
  to run in emulators (I know of no case though), or if some hacker fixed 
  the program to adapt it to an emulation issue that has since been improved
  (eg Sentinel by Klapauzius).
  Note that emu detect was in original Steem, only the option to switch it off
  has been added in the SSE version.
- Option 'ST Model'
  This is the long awaited STF/STE switch in Steem.
  This switch is a departure from the original STEem, which endeavoured to
  emulate only the STE.
  The STE was the better computer but most programs were coded with the older
  STF in mind. 
  Emulating the differences between STF and STE is not so hard and makes a lot
  more programs, some I find important, run in Steem.
  You can change this option during emulation but at your risk. 
  Even if some STE programs may work in TOS 1.02, it's better to use TOS 1.06
  or 1.62.
  The emulator won't compel you, but will try to match a default compatible TOS
  when you change the option.
  It only looks for 1.02-STF, 1.06-STE, because they seem to be the most 
  compatible TOS.
  The STF won't boot with TOS 1.06, 1.02 or 1.04 is recommended, though 1.00 
  may be necessary for older programs.
  The Mega STF option gives you the blitter and 4MB, that's all it does, it's
  for fun (and we do this for fun, right?)

- Option '6301 true emu'
  Using code by Arne Riiber and doc by Stephane Catala - Belzebub / ST 
  Connexion), Steem features CPU-level emulation of the "intelligent keyboard"
  (IKBD) chip since v3.4.
  The main goal was to be able to run some demos reprogramming that chip
  without copying Hatari code, but it does more than that, being better than
  fake emu in some cases, worse in others. When you change this option, you
  normally should reset the ST, but Steem won't force you.
  For this option to work, copy the (supplied) IKBD rom 'HD6301V1ST.img' into
  your Steem folder.
  To reduce code footprint, removed hack that has demos Dragonnels, 
  Froggies, Transbeauce 2 running without 'true 6301 emu mode'. (v3.5.1)

- Option 'Keyboard click'
  This option reflects the state of bit 1 of address $484 in the ST, that
  is checked by the OS to know if it must produce that annoying click or not
  when you press a key. It's like on the  GEM Control Panel, but always 
  available. It was often requested and is at last available in this Steem 
  build. It would be most useful for playing the Pasti version of The Pawn, 
  for example.
  Use this switch only when you want to get rid of clicks. Many programs 
  overwrite this memory zone, and changing some byte could crash the ST.

- Option 'PSG Filter'
  Disable to get the original Steem 3.2 filter of the YM2149 soundchip,
  enable for another filter, more open (and in fact simpler). This is very
  subjective, I prefer PSG sound like this, including samples.

- Option 'STE Microwire'
  STEem being an STE emulator, it was about time to add support for this
  rarely used feature of the STE, the ultra-cheap Microwire tone controller.
  We use simple 3rd party DSP code by Maverick (Fabio Bizzetti) to add 
  control over volume, balance, bass & treble in those rare cases.
  I'm sure it doesn't exactly sound like on an STE, but I doubt they sounded
  that great anyway.

- Option 'Wake-up state' (v3.5)
  This is a very technical point, the ST's processor and the video circuit
  share the RAM bus and this is a huge liability. 
  Wake-up state means which chip gets the first cycles each time. 
  It is determined somewhat randomly (depending on temperature for example!)
  at power-on on a true ST. 
  Emulation of this is partial.
  You may generally ignore this option, it is useful only to check the
  display of some demos: Death of the Left Border, Omega Full Overscan,
  Overdrive/Dragon, Forest, Beeshift, Beescroll, SNYD/TCB, Decade title, 
  Nostalgia menu...
  The last option 'Shifter panic' will show the infamous bands in Omega. 
  (v3.5.3)

- Option 'Pasti only for STX' (v3.5.1)
  This makes Pasti handle only STX images, Steem being in charge of the rest. 
  Interesting possibilities: you may try and copy STX images on a ST disk 
  image. No guarantee!
  Windows-only.

- Option 'Slow disk'. It duplicates the same option in the disk manager because
  I noticed that even old-time users often forget about this option. (v3.5.3)

- Floppy drive: new option to display current drive, side, track and sector.
  Yes kid, admit it, it was your fantasy, now it's true! (v3.5.1)
  The option is not in the SSE option tab but in 'On Screen Display'.
  No sector when fast mode (v3.5.2).

- Disk image name scrolling (same option tab). (v3.5.1)


Emulation features
--------------------

- Some CPU exception fixes (Beyond, Phaleon, Transbeauce 2...) which have
  brought Steem on the same level as Hatari for protected demos.
  In v3.5.1, value of PC (program counter) in some provoked crashes now 
  based on Motorola microcode analysis! 
  No more vulgar opcode-based hacks in Steem baby (Blood Money, European Demos,
  Phaleon, Transbeauce 2, War Heli...)
- CPU prefetch. It was good enough but while trying to fix some problems, I
  remade it all, enforcing ijor's rules; now it's there in any case. I think
  Steem has the best prefetch of all ST emulators.
- CPU prefetch timing: removed the shifter counter hack made necessary by
  premature cycle counting. You won't notice any difference but it's a huge 
  internal change, and for this too Steem leads the way.
- CPU DIV timings from ijor (Dragonnels, Pandemonium, proving they're correct!)
- CPU fetching in IO zone

- More shifter tricks handled: 0-byte line, STE +20 line, 4bit hardscroll...
  (v3.3)
  Much taken from Hatari, also from Atari-forum discussions, doc by demo makers,
  etc.
- STE hardscroll in medium resolution (v3.4), high (v3.5.3)

- Disk drive slow mode: bug fixes and improvements (Disk manager option
  "Accurate Disk Access Times", snails appear on disk icons), mainly inspired 
  by Hatari, Kryoflux, technical documentation about controller and disk
  format (gaps).
  Steem is now closer to the hardware.

- Pasti: toggling Pasti on/off in the disk manager will not force a reset 
  anymore.
  Smarter disk manager, setting pasti on/off as needed, displaying all
  images.

- IPF support (disk format of images saved by Kryoflux hardware) (v3.5)
  You need CAPSimg.dll in Steem's directory. It's available here:
  http://www.softpres.org/download
  To use this feature, just run an IPF disk. There's no option like for
  Pasti because CAPS only does IPF.
  We use the low-level WD1772 included in the DLL, so it's a matter of 
  integrating emulations, a bit like for the HD6301 emulation. 
  The real work was done by Istvn Fbin and The Software Preservation 
  Society. 
  IPF support is as good as that emulation. Some features are not implemented
  (write commands).
  Windows-only.

- Timings: more precise STE CPU frequency, more precise STE DMA sound frequency,
  more precise MFP timers for shorter intervals (HWTST001.PRG). (v3.5.1)

- ACIA emulation making a more explicit use of the chip's registers, with
  some improvements (MIDI: Notator) (v3.5.1)

- TOS106 medium resolution bug hack (desktop.inf will work!)

- STE auto set RAM to 2MB, STF to 1MB, for better compatibility. Of course
you can still change it at your convenience. (v3.5.1)

- Various other fixes: MMU, Blitter...


Improvements of v3.5.3
------------------------

- Reset button inverted: left click for reset, right click for switch off
- On Screen Display: 'Steem SSE' in former plasma, no version number, which 
  is in the window title. In fact 'SSE' fits in the space reserved
  for two digits version number ('3.2'). Nice-looking, original work by Steem
  authors.
- Option 'Interpolated scanlines' moved to SSE option page
- Option 'Slow disk' duplicated in SSE page
- File associations: 
  Can now create and remove association in options.
  Now uses registry part HKEY_CURRENT_USER, not HKEY_CLASSES_ROOT so you
  don't need to run as administrator.
  Simplistic: when you associate, Steem takes the extension for itself,
  disregarding other programss. When you remove the association, Steem deletes
  the extension from the registry.
  No auto-association at startup, including .PRG,.TOS,.APP,.GTP,.TTP.
  No association with .STC (cartridge) possible, by design.
  Removing previous Steem associations is up to you.
  You must reassociate with subsequent versions. It's because the name of the 
  executable changes.
  Those changes also reduce the executable file size by 4KB.
- 'Very large' display size increased to 412x285: The Musical Wonder 90
- 'Large' display size: correct On Screen Display alignment
- TOS STE faster boot (from hatari) (option 'Hacks')
- Better video RAM check on some writes: mmuupd0, 3615 GEN4 by ULM 100%
- Top and bottom borders depend on Wake-up state: wakeup.tos, Decade title, ...
- Shifter destabilisation: 'Bee' demos by LJBK
- Shifter panic: Omega Full Overscan (for fun)
- Shifter tricks fixes for 0 byte lines, lines +2, lines -106, new line +24:
  The LoSTE screens by Sync (STF/STE), SNYD/TCB (WU1,2)
- Hardscroll in high resolution (please code some demos!)
- Bugfix ACIA: Nightdawn
- Bugfix MFP: ST Magazine STE Demo
- FDC: 'Force Interrupt' better handled (Panzer)
- Drive: Slow boot to GEM when no disk; Interleave in 11 sectors disks


Programs working better in Steem
----------------------------------

If you don't get it working read hints here below. Maybe you should (un)check
option 'Hacks' or select anohter ST type or TOS, slow drive, etc.
The number between parentheses is the version of Steem when the program 
started to work, but there may have been regressions or improvments.

Games
--------

- Blood Money STX+IPF (CPU) (3.5.1)
- Enchanted Land (shifter counter) (STF/STE) (3.3)
- The Final Conflict (3.3)
- Hyper Force (STF) (3.3)
- International 3D Tennis (STF) (3.3)
- Jumping Jackson (Auto): no menu; useless as I know of no good disk image (3.4)
- Leavin' Terramis (60hz overscan) (3.4)
- Live & Let Die (STF) (3.3)
- Manchester United: mouse control (3.4)
- Microprose Golf: drive (slow) (thx Petari) (3.5.1)
- Mortville Manor (hiss, probably was already in released code) (3.2+)
- Nightdawn (STF) (3.3)
- No Buddies Land (smooth vertical scrolling) (3.3)
- Rainbow Island (auto 231) (STF) (3.3)
- The Sentinel (mouse, 3.4) (Auto001, 3.5.1 slow disk)
- Seven Gates Of Jambala (Timer B - from Hatari) (3.3)
- Trex Warriors (Timer B - from Hatari) (3.4)
- Titan STE mode (CPU exception) (3.3)
- Titan STF mode (thx Petari) (3.5)
- Ultimate Arena STF (thx Petari)(it quits instead of crashing, yeaaaah)(3.5)
- Warp STX (CPU) (3.5.1) - use correct image on SSE site or Petari's (2D)
- X-Out (mouse, HD6301) (3.4) + HD version (3.5.1)

- Demos
---------

We fix more demos than games just because demo programming was edgier.
Note that STE demos are tested with TOS106.

- 36.15 Gen4 by Cakeman (STF) - overscan (3.3) 
- 36.15 Gen4 by ULM: timings - torn scroller (3.4) (3.5.3: 100%)
- 4pixel Rasters: prefetch - raster size (3.3)
- Audio Artistic Demo: MFP (hack; from Hatari) (3.5.2)
- Beat Demo (STE): sound controls (Microwire) (3.4)
- Beeshift: shifter (3.5.3)
- Beyond: Loader (CPU); Pax Plax Parallax STF (from Hatari) (3.4)
- Big Wobble (STE): shifted pic ('Hacks') (3.4)
- Bits055 STF mode: refuses to run (yeah!) (3.5.1)
- Blood by Holocaust: disk (3.5)
- Cernit Trandafir (STE, 4MB): CPU timings, 2nd screen (3.5)
- Cool STE: terrible flicker, unreadable & jerky scrollers (3.4)
- Corporation Megademo (STE): keyboard ('Hacks') (3.4)
- Dangerous Fantaisy: credits (STE): flicker ('Hacks') (3.4)
- Death of the Left Border (STF2) (3.3)
- Delirious 4 (STE): Loader (FDC), NGC, Nightmare, Tekila ('Hacks') (3.3,
  3.4)
- Dragonnels: Loader (CPU), Menu (IKBD), Rainbow Wall (Borders), 
  Unlimited Bobs (IKBD) (3.3)
- E605: planet (STE)(option Hacks) (3.4)
- European Demos: Loader (3.3), Disk B ('Hacks') (3.5.2)
- Extreme Rage (STE): guest screen overscan (3.4)
- Forest aka shforstv.exe in STF1 (3.4), STF2 (3.3), STE (3.4) modes!
- Froggies Over The Fence: Menu  (3.3)
- Golden Soundtracker (STE): wrong background colour (3.4)
- Imagination/Roller Coaster (STF) (3.3)
- Japtro STF (3.3); STE (3.5.1)
- The LoSTE screens by Sync (3.5.3)
- More or less Zero (STE, 2MB) (3.3)
- The Musical Wonder 90: big display (3.5.3)
- The Musical Wonder 91 (STF) (3.4)
- No Cooper: Greetings (3.3)
- Nostalgia: Lemmings (STF, STE) (3.3)
- Omega Full Overscan Screen (STF2) (3.3)
- Overdrive: Loader (3.5), Dragon by Ghost (STF2) (3.4)
- Pacemaker credits (STE) ('Hacks') (3.4)
- Pandemonium Demos: Loader (CPU) (3.3)
- Phaleon: Loader (CPU) (3.3)
- PYM: Best Part of the Creation, ST-CNX (STF) (3.3)
- Revolution (larger display) (3.3)
- RGBeast by Aggression (STE): mush, overscan (3.4)
- Riverside by DHS (STE) (3.5.2)
- SoWatt: Menu, Sync (STF) (3.3)
- Sphere by Sunny (STE): jerky scroller (3.4)
- ST-NICCC 2000 Final by Oxygene (STF+STE version): drive speed (3.5.1)
- Summer Delights (STE) #1, #11, #14 (3.3), #5, #7 (3.5)
- Super Neo Demo Show (all RAM configs) (3.3)
- Swedish New Year Demo/TCB (STF, hacks) (3.3)
- SNYD2/Sync fullscreen (F5) (STF) (3.4)
- Transbeauce 2: Loader (CPU exceptions), Menu (IKBD) (3.3)
- Ultimate GFA Demo boot screen (STF) (3.4)
- Union Demo: Menu, Fullscreen (STF) (3.3)
- V8 Music System: keyboard (3.3)

- Menu intros
---------------

- Automation 168 (STF) (3.3)
- BBC 52 (overscan) (3.3)
- Lemmings 40 (STF) (3.3)
Many intros also benefit from larger display.

- Applications
----------------

- Aladin: (crash on load) (3.5.0; broken 3.5.1, fixed 3.5.2)
- Atari Diagnostic Cartridge (3.5.2)
- NEOchrome: mouse speed? (HD6301 emu) (3.4)
- Notator: tempo, stalling (3.5.1)
- Panzer: drive rotation time (3.5.3)
- ProCopy: Analyze (3.5.1) - What da ya say, useless?
- Spectrum 512 painting program: jitter (ACIA) (3.4)


And countless other programs!


Patches
---------

There are also new patches included with the archive.
Some are useful only with older versions of Steem.


Bugs
------

Please report bugs, especially broken programs, here:
http://www.atari-forum.com/viewtopic.php?f=94&t=25093 
(Steem SSE 3.5 post-mortem thread)

No more email/PM please, the more activity on the Atari forum the better.

Please read this file and the SSE FAQ, the answer to some questions is already
in there.

Please try different settings before reporting, not all programs are supposed
to work with all versions of TOS, or on a STF, STE, etc.
Also try with slow (accurate) disk drive mode.



Steem SSE Web sites
---------------------

https://sourceforge.net/projects/steemsse/

http://ataristeven.t15.org/Steem.htm (all builds, ST programs, pics, doc)

http://code.google.com/p/steem-engine/ (source v3.3, Subversion)

https://steemsse.svn.sourceforge.net/svnroot/steemsse (source v3.4 & up, 
Subversion, you can download a snapshot of the source)


Release history
-----------------

Steem SSE V.3.3.0, 28/02/2012
Steem SSE V.3.4.0, 22/09/2012
XSteem SSE V.3.4.0, 06/10/2012
Steem SSE V.3.4.1, 14/11/2012
Steem SSE V.3.5.0, 27/02/2013
XSteem SSE V.3.5.0, 02/03/2013
Steem SSE V.3.5.1, 11/06/2013
XSteem SSE V.3.5.1, 13/06/2013
Steem SSE V.3.5.1 OPT, 15/06/2013
Steem SSE V.3.5.2, 04/08/2013
XSteem SSE V.3.5.2, 04/08/2013
Steem v3.2+, 27/08/2013
Steem SSE v.3.5.3, 13/10/2013

